10 'The Sword of Fallen Angel -version 1.00 20 'created on feb 85 by andry rachmat 25 'ported to Amiga Jul 86 30 ' 40 '***************************************** 41 'If you could not load or run the program 42 'with "OUT OF MEMORY ERROR", 43 'type CLEAR ,65000 on the output window, 44 'and try again. 45 '***************************************** 90 DEFINT a-z:DEFSTR c,o,v,p 100 DIM oi(30),oh(30),oj(30),xi(30),ei(30),ot(10),xt(10),gt(10),et(10),od(10),xd(10),gd(10),ed(10),ok(4),ol(4),om(4),xl(4),el(4),ks(4),kd(4),kw(4),kc(4),kf(4),kl(4) 110 DIM p(16),d(16,6),v(75),c(60),a$(9),ab$(6),f(50) 120 LINE INPUT "Your name :";cn:FOR i=1 TO INT(RND*500):y=INT(RND):NEXT:commfile="sword_comment.dat" 122 PRINT:LINE INPUT "Is sword_comment.dat copied to ram ?";c 125 IF c="y" OR c="Y" THEN commfile="ram:"+commfile 140 FOR i=0 TO 50:f(i)=0:NEXT:nc=60:f(21)=1:f(31)=1:f(37)=3:f(1)=1:f(2)=11 160 OPEN "i",1,"sword_item.dat" 170 INPUT#1,n:FOR i=1 TO 30:INPUT#1,oh(i),oi(i),oj(i),xi(i),ei(i):NEXT:CLOSE 172 OPEN "i",1,"sword_verb.dat" 175 FOR i=0 TO 75:INPUT#1,v(i):NEXT:FOR i=1 TO nc:INPUT#1,c(i):NEXT:CLOSE:p(0)=c(55):FOR i=1 TO 4:d(0,i)=1000:NEXT 180 c="sword_set"+MID$(STR$(f(1)),2,LEN(STR$(f(1)))-1)+".dat" 181 OPEN "i",1,c 182 FOR i=1 TO 16:INPUT#1,p(i):FOR j=0 TO 6:INPUT#1,d(i,j):NEXT j:NEXT i 190 INPUT#1,n1:FOR i=1 TO 10:INPUT#1,ot(i),xt(i),gt(i),et(i):NEXT 200 INPUT#1,n2:FOR i=1 TO 10:INPUT#1,od(i),xd(i),gd(i),ed(i):NEXT 210 INPUT#1,n3:FOR i=1 TO 4:INPUT#1,ok(i),ol(i),om(i),xl(i),el(i),ks(i),kd(i),kw(i),kc(i),kf(i),kl(i):NEXT:CLOSE 305 IF f(5)=1 THEN f(5)=0:RETURN 325 IF f(39)0 THEN 336 332 f(40)=1:y=1:f=2:GOSUB 2100:f=3:GOSUB 2100:GOSUB 2060:CLS:PRINT:FOR f=24 TO 31:GOSUB 2100 333 IF f=26 OR f=29 OR f=31 THEN GOSUB 2060:PRINT 334 NEXT f:CLS 336 IF f(1)=3 AND f(40)=2 THEN f(40)=3:f=32:y=2:GOSUB 2100 338 IF f(1)=2 AND f(40)=3 THEN f(40)=4:f=5:y=10:GOSUB 2150:om(4)=c 340 f(3)=f(2)+(f(1)-1)*16:IF f(2)=0 THEN f(3)=1000 349 'pre-loca 350 IF d(f(2),0)>19 AND f(8)=0 THEN f=14:y=1:GOSUB 2100:GOTO 600 355 IF d(f(2),0)<20 AND f(8)=1 THEN f(8)=0 360 IF NOT((f(3)<33 AND f(3)>20) OR f(1)=5) THEN 370 362 FOR i=1 TO 12:IF xi(i)<0 THEN xi(i)=-f(3) 364 NEXT:IF f(1)=5 THEN 370 366 xd(1)=f(3):IF f(3)>24 THEN xt(1)=f(3)ELSE xt(2)=f(3) 370 IF f(3)<40 AND f(3)>33 THEN xl(1)=f(3) 380 IF f(3)>=65 AND f(3)<=71 THEN xt(1)=f(3) 381 IF f(3)=66 AND f(18)=1 THEN xd(1)=-66:gd(1)=1019 382 IF f(3)=66 AND f(18)=3 THEN xd(1)=-66:gd(1)=9 383 IF f(3)=68 AND f(17)=1 THEN xd(2)=-68:gd(2)=1019 384 IF f(3)=68 AND f(17)=3 THEN xd(2)=-68:gd(2)=9 385 IF f(3)=73 THEN IF f(18)=3 THEN gd(3)=2ELSE gd(3)=4 387 IF f(1)=5 AND f(13)=7 THEN f(13)=8:f=78:y=1:GOSUB 2100:PRINT 400 PRINT p(f(2)) 402 IF f(40)=1 THEN f(40)=2:f=32:y=1:GOSUB 2100 404 IF d(f(2),0)>8 AND f(1)=4 THEN f=23:y=10:GOSUB 2100:xt(6)=f(3):xt(7)=f(3) 406 IF f(40)=4 AND f(3)=63 THEN f(40)=5:ol(1)=ot(9):xl(1)=xt(9) 408 IF f(40)=6 AND f(3)=60 THEN f(40)=7:f=78:y=1:GOSUB 2100:f=74:y=4:GOSUB 2100 410 '410-500 for the post location 412 FOR i=1 TO n2:IF xd(i)=-f(3) THEN 415ELSE NEXT i:GOTO 420 415 FOR i=1 TO n2:IF xd(i)=-f(3) THEN f=23:y=1:GOSUB 2110:PRINT od(i);c(16) 416 NEXT i 420 IF d(f(2),0)=1 AND f(32)=0 THEN f=14:y=3:GOSUB 2100 421 IF d(f(2),0)=2 AND f(32)=0 THEN f=14:y=4:GOSUB 2100:f(9)=1:IF xi(3)<>0 THEN 1280ELSE f=14:y=5:GOSUB 2100:GOTO 1280 425 IF d(f(2),0)=4 THEN f=23:y=2:GOSUB 2100 430 IF f(1)=2 AND f(11)>4 AND xl(4)>0 THEN f=79:y=2:GOSUB 2100:xl(4)=f(3):f(11)=f(11)+1 435 IF d(f(2),0)=5 AND f(32)=0 THEN f=28:y=2:GOSUB 2100:f(9)=3:IF xi(3)<>0 THEN 1280ELSE f=14:y=5:GOSUB 2100:GOTO 1280 480 IF f(3)<>42 THEN 490 482 IF d(11,0)=6 THEN IF xl(3)<=0 THEN f=28:y=3:GOSUB 2100 484 IF f(19)>1 THEN f=31:y=2:GOSUB 2100 490 IF f(3)=41 THEN 600 500 FOR i=1 TO 6:IF d(f(2),i)>0 THEN 510ELSE NEXT i:GOTO 530 510 f=0:PRINT:PRINT c(1);:FOR i=1 TO 6:IF d(f(2),i)>0 THEN IF f=0 THEN f=1:PRINT v(i);ELSE PRINT ", "v(i); 520 NEXT:PRINT c(16) 530 FOR i=1 TO n3:IF ABS(xl(i))=f(3) THEN 550 ELSE NEXT i 540 FOR i=1 TO n:IF ABS(xi(i))=f(3) THEN 550 ELSE NEXT i:GOTO 600 550 PRINT:PRINT c(2); 560 FOR i=1 TO n3:IF ABS(xl(i))=f(3) THEN PRINT TAB(18)ok(i);ol(i);om(i) 570 NEXT i:FOR i=1 TO n 580 IF ABS(xi(i))=f(3) THEN PRINT TAB(18)oh(i);oi(i);oj(i) 590 NEXT i 599 '600-999 for pre-comm and condition 600 IF NOT(f(3)=13 AND xl(2)>0) THEN 610 601 f(19)=f(19)+1:IF f(19)<5 THEN 610 602 IF f(19)=5 THEN f=22:y=2:PRINT c(59);ol(2);:GOSUB 2100:GOTO 610 603 x1=2:GOSUB 2850:IF INT(RND*3+1)=1 THEN GOSUB 2870 ELSE GOSUB 2860 610 IF f(3)=3 AND xl(1)=3 THEN x1=1:GOSUB 2750:f(9)=1:GOTO 1280 620 IF f(1)<>2 THEN 650 622 IF f(3)<>xd(8) THEN f(16)=0:GOTO 626 624 f(16)=f(16)+1:IF f(16)=4 THEN GOSUB 4226:GOTO 1280ELSE f=80:y=4:GOSUB 2100 626 IF NOT(f(3)=xl(1) OR f(3)=xl(2)) THEN f(12)=0:GOTO 632 628 f(12)=f(12)+1:IF f(12)=4 THEN x1=1:GOSUB 2850:f=82:y=1:GOSUB 2100:f(9)=2:GOTO 1280 632 IF f(11)=1 THEN IF f(3)=17 THEN f(11)=2ELSE f=78:y=3:GOSUB 2100:f(9)=2:GOTO 1280 634 IF f(11)=3 AND f(3)=17 THEN f(13)=f(13)+1 636 IF f(13)=7 THEN f(13)=0:f=80:i=1:j=2:GOSUB 2130:f(9)=2:GOTO 1280 638 IF NOT(f(3)=xl(3) OR f(3)=xl(4)) THEN 650 640 IF f(11)=0 THEN f(11)=1:f=78:i=1:j=2:GOSUB 2130:GOTO 650 642 IF f(11)=2 THEN f(11)=3:f=79:y=1:GOSUB 2100:xl(4)=18:GOTO 650 644 IF f(11)=3 THEN f=78:y=3:GOSUB 2100:f(9)=2:GOTO 1280 646 IF f(11)=9 THEN f=79:y=3:GOSUB 2100:f(9)=6:GOTO 1280 650 IF f(1)<>3 THEN 680 652 IF f(3)<>xl(3) THEN 658 654 f(17)=f(17)+1:IF f(17)=1 THEN f=35:y=2:GOSUB 2100:GOTO 658 656 IF f(17)=2 THEN f=35:y=3:GOSUB 2100ELSE f=35:y=4:GOSUB 2100:f(9)=3:GOTO 1280 658 IF f(3)<>xl(2) THEN 662 660 f(30)=f(30)+1:IF f(30)>3 THEN x1=2:GOSUB 2850:GOSUB 2860 662 IF f(3)<>43 THEN 680 664 IF f(18)=0 OR f(19)=4 THEN 668 666 f(19)=f(19)+1:f=31:y=3:GOSUB 2100:IF f(19)=3 THEN f=43:y=2:GOSUB 2100:GOTO 680 668 IF f(19)=4 THEN f=43:y=3:GOSUB 2100:xd(8)=43:f=58:y=4:GOSUB 2100:IF f(32)=0 THEN f=28:y=2:GOSUB 2100:f(9)=3:GOTO 1280 680 IF f(40)=5 THEN f(40)=6:GOSUB 8000:GOTO 340 690 IF f(1)=4 THEN GOSUB 8060 695 IF fx=9 THEN fx=2:GOTO 1280 700 IF f(11)=11 AND f(1)=4 THEN f(11)=12:GOTO 340 710 IF f(1)=4 AND f(9)=4 THEN 1280 900 IF f(3)=70 THEN f(19)=f(19)+1:IF f(19)>3 THEN f(19)=0:PRINT:f=67:y=2:GOSUB 2100:f(2)=5:PRINT:GOTO 340 940 IF f(6)<0 THEN f(6)=0 950 IF f(31)<>1 THEN 990 952 IF f(7)<4 THEN 960 954 IF f(34)=0 THEN f(34)=1:oh(1)=c(57) 956 f=19:y=1:GOSUB 2100:GOTO 990 960 IF f(34)=1 THEN f(34)=0:oh(1)=c(56) 970 ' 990 IF f(38)>10 THEN f(7)=f(7)+1:f(38)=0 992 IF f(7)>4 THEN IF NOT(f(3)>20 AND f(3)<25) THEN f(9)=f(1):GOTO 1280ELSE f(9)=6:GOTO 1280 995 IF f(7)=4 THEN f(38)=f(38)+1:IF f(38)>8 THEN f=6:y=8:GOSUB 2100 1000 x1=FRE(0):PRINT:PRINT c(3);:INPUT cm 1010 x1=LEN(cm):IF x1=0 THEN 1000 1012 FOR i=1 TO x1:a$(1)=MID$(cm,i,1):IF a$(1)>="A" AND a$(1)<="Z" THEN MID$(cm,i,1)=CHR$(ASC(a$(1))+32) 1030 NEXT i:x=1:a$(x)="":FOR i=1 TO x1:c=MID$(cm,i,1) 1040 IF c=" " THEN 1060 1050 a$(x)=a$(x)+c:GOTO 1070 1060 x=x+1:a$(x)="" 1070 NEXT i 1075 IF x>9 THEN f=6:y=3:GOSUB 2100:GOTO 1000 1080 'check for blank and the 1090 FOR i=1 TO x:IF a$(i)=MID$(c(20),1,3) THEN a$(i)="" 1100 NEXT i:GOSUB 2020:FOR i=1 TO x 1120 x1=LEN(a$(i)):IF x1<3 THEN a$(i)=a$(i)+" ":GOTO 1120 1130 NEXT i:FOR i=1 TO 75 1160 IF MID$(a$(1),1,3)=MID$(v(i),1,3) THEN x1=i:GOTO 1180 1170 NEXT:PRINT c(6);cm;c(16):FOR i=1 TO x:a$(i)="":NEXT:GOTO 1000 1180 IF x=1 AND x1>41 THEN PRINT c(4):GOTO 1000 1190 IF f(4)=0 AND x1=33 THEN 1000 1192 IF x1=33 THEN x1=xb:x=bx:FOR i=1 TO x+1:a$(i)=ab$(i):NEXT ELSE xb=x1:bx=x:FOR i=1 TO x+1:ab$(i)=a$(i):NEXT 1195 fx=4:IF d(f(2),0)>19 AND f(8)=0 THEN IF x1>42 THEN f=14:y=2:GOSUB 2100:GOTO 1280 1200 c=MID$(a$(2),1,3):ON INT((x1-1)/15)+1 GOTO 1220,1230,1240,1250,1260 1220 ON x1 GOSUB 3100,3100,3100,3100,3100,3100,3200,3200,3200,3200,3200,3200,3000,3300,3300:GOTO 1280 1230 ON x1-15 GOSUB 3600,3600,3700,3800,3900,4000,4000,3720,3720,5000,5100,5200,5300,5500,3750:GOTO 1280 1240 ON x1-30 GOSUB 5080,3600,2000,2000,9700,5600,5700,5400,5900,6000,9900,4100,9100,9100,9000:GOTO 1280 1250 ON x1-45 GOSUB 4300,4400,4700,4700,2000,4700,4700,4700,2000,7020,7200,6400,12000,12000,2000:GOTO 1280 1260 ON x1-60 GOSUB 2000,2000,2000,2000,2000,2000,8700,4100,2000,2000,10400,10800,11200,11600,2000:GOTO 1280 1270 'post comm and check 1280 cm="":FOR i=1 TO bx:a$(i)="":NEXT 1500 IF f(1)=4 THEN IF f(13)=6 THEN IF xi(4)=0 AND xl(3)>0 THEN f(13)=7:f(5)=6:xi(2)=64:f(35)=4:xi(12)=64ELSE f(13)=3:f=78:y=1:GOSUB 2100 1830 'death check 1840 IF f(9)>0 THEN GOSUB 16500 1850 'move to next set 1860 IF f(5)>0 THEN GOSUB 16000 1970 ON fx GOTO 1000,1980,340,600,1985,1990 1980 CLS:GOTO 340 1985 CLOSE:GOTO 180 1990 CLOSE:END 1999 '2000-2999 for subroutine, 3000- for comm and routine 2000 f(4)=f(4)+1:f=5:y=6:GOSUB 2100:RETURN 2010 'removing blanks in comm and line 2020 FOR i=1 TO x:IF a$(i)<>"" THEN 2040 2030 FOR j=i TO x:a$(j)=a$(j+1):NEXT j:x=x-1:GOTO 2020 2040 NEXT i:RETURN 2050 'wait 2060 PRINT:PRINT c(12) 2070 'inkey routine return character in c 2080 c=INKEY$:IF c="" THEN 2080 ELSE RETURN 2090 'f=comm,y=pos 2099 'debug 2100 GOSUB 2150:PRINT c:RETURN 2110 GOSUB 2150:PRINT c;:RETURN 2120 FOR f=i TO i+j-1:GOSUB 2150:PRINT c:NEXT:RETURN 2130 FOR y=i TO i+j-1:GOSUB 2150:PRINT c:NEXT:RETURN 2140 ' 2150 GET 1,f:y1=INSTR(cx,STR$(y)):IF y>9 THEN y1=y1+3 ELSE y1=y1+2 2160 y2=INSTR(cx,STR$(y+1)):c=MID$(cx,y1,y2-y1):RETURN 2190 'check items 2200 x1=0:x2=0:FOR i=1 TO 30 2210 IF c<>MID$(oi(i),1,3) THEN 2280 2220 x2=i:IF f(3)=xi(i) THEN x1=i:RETURN 2230 IF xi(i)=0 THEN x1=i:x2=-x2:RETURN 2240 IF f(3)=ABS(xi(i)) THEN x1=i:RETURN 2280 NEXT i:RETURN 2290 'check aux items 2300 x1=0:x2=0:FOR i=1 TO n1 2310 IF c<>MID$(ot(i),1,3) THEN 2350 2320 x2=i:IF f(3)=xt(i) THEN x1=i:RETURN 2330 IF f(3)=ABS(xt(i)) THEN x1=i:x2=-x2:RETURN 2350 NEXT i:RETURN 2390 'check direction to go 2400 x1=0:x2=0:FOR i=1 TO n2 2410 IF c<>MID$(od(i),1,3) THEN 2450 2420 x2=i:IF f(3)=ABS(xd(i)) THEN x1=i:RETURN 2450 NEXT i:RETURN 2490 'check creature 2500 x1=0:x2=0:FOR i=1 TO n3 2510 IF c<>MID$(ol(i),1,3) THEN 2550 2520 x2=i:IF f(3)=xl(i) THEN x1=i:RETURN 2530 IF f(3)=ABS(xl(i)) THEN x1=i:x2=-x2:RETURN 2550 NEXT i:RETURN 2590 'fourth word input 2600 PRINT" ";:LINE INPUT a$(4):cm=cm+CHR$(32)+a$(4):RETURN 2640 'fake what should i do 2650 PRINT :PRINT c(3)"? "; 2655 GOSUB 2080:PRINT c;:IF c=CHR$(13) THEN PRINT:RETURN ELSE 2655 2699 'm-s 2700 IF d(f(2),0)=f THEN x1=ABS(x2):x2=x1:RETURN 2702 IF d(f(2),0)=f+1 THEN x1=ABS(x2):x2=x1:d(f(2),0)=0 2705 RETURN 2749 'disturb & bite 2750 f=22:y=1:GOSUB 2110:PRINT ol(x1) 2752 f=22:y=7:PRINT c(59);ol(x1);:GOSUB 2100:RETURN 2755 'move & discover 2760 f=9:y=2:GOSUB 2150:PRINT c(37);c;od(x1);c(16):RETURN 2764 'don't let 2765 f=20:y=2:GOSUB 2150:PRINT c(59);ol(x1);c:RETURN 2799 'if go 2800 f=21:y=5:GOSUB 2100:PRINT c(8):GOSUB 2080 2810 IF c="y" OR c="Y" THEN f=15:y=1:GOSUB 2100:f=0 2820 RETURN 2840 'attacked 2850 PRINT c(59);ol(x1);:f=22:y=3:GOSUB 2100:RETURN 2855 'hit 2860 f=22:y=4:GOSUB 2100:f(7)=f(7)+1:RETURN 2865 'dogde 2870 f=22:y=5:GOSUB 2100:RETURN 2940 'don't know 2950 PRINT c(7);a$(2);c(16):RETURN 2960 PRINT c(7);a$(4);c(16):RETURN 2970 'don't see 2980 f=7:y=1+INT(RND*2+1):GOSUB 2110:PRINT a$(2);c(13):RETURN 2990 f=7:y=1+INT(RND*2+1):GOSUB 2110:PRINT a$(4);c(13):RETURN 3000 RETURN:PRINT "debug : f/i/l/c/e - 1/2/3/4/5":INPUT f 3020 ON f GOTO 3030,3040,3050,3060,3090:STOP 3030 INPUT "#";f:PRINT "before"f(f):INPUT "now ";f(f):GOTO 3000 3040 INPUT "#";f:PRINT oi(f)" before"xi(f):INPUT "now ";xi(f):GOTO 3000 3050 INPUT"#";f:PRINT ol(f)" before"xl(f):INPUT "now ";xl(f):GOTO 3000 3060 PRINT "s/r - 1/2":INPUT f 3070 IF f=1 THEN INPUT "# ";f:PRINT c(f):GOTO 3000 3080 INPUT "# ";f,y:GOSUB 2100:GOTO 3000 3090 PRINT "exit to : c/cr/r/pc/l/e":INPUT fx:RETURN 3099 'n,s,e,w,u,d 3100 f(4)=f(4)+1:IF d(f(2),x1)>0 THEN 3150 3110 'can't go in dark 3112 IF d(f(2),0)<19 THEN 3120 3114 IF f(8)=1 THEN 3120 3116 IF INT(RND*2+1)=2 THEN 3120 3118 f=21:y=6:GOSUB 2100:f(9)=f(1):RETURN 3120 PRINT c(9):RETURN 3149 'pre-condition for move 3150 IF d(f(2),x1)=1000 THEN f(2)=0:fx=2:RETURN 3151 IF d(f(2),x1)=999 THEN f=43:y=4:GOSUB 2100:f(9)=3:RETURN 3152 IF d(f(2),x1)=998 THEN PRINT :f=23:y=11:GOSUB 2100:f=67:y=2:GOSUB 2100:RETURN 3155 IF d(f(2),x1)=997 THEN IF f(11)<4 THEN f=73:y=6:GOSUB 2100:RETURN ELSE f(2)=13:fx=2:RETURN 3180 IF xl(4)=55 THEN x1=4:GOSUB 2765:RETURN 3190 f(2)=d(f(2),x1):fx=2:RETURN 3200 x1=x1-6:GOTO 3100 3210 ' 3290 'save & restore 3300 fx=1:cm="":PRINT c(54);:LINE INPUT cm 3310 IF LEN(cm)>8 THEN f=6:y=1:GOSUB 2100:GOTO 3300 3320 IF cm="" THEN cm="sword.save"ELSE cm=cm+".save" 3330 CLOSE:IF x1=15 THEN 3400 3340 ON ERROR GOTO 3500 3350 OPEN "o",1,cm 3360 FOR i=1 TO 50:PRINT#1,f(i):NEXT 3361 FOR i=1 TO 30:PRINT#1,CHR$(34)oh(i)CHR$(34)","CHR$(34)oj(i)CHR$(34)","xi(i):NEXT:FOR i=1 TO 10:PRINT#1,xt(i):NEXT:FOR i=1 TO 10:PRINT#1,xd(i):NEXT:FOR i=1 TO 4:PRINT#1,CHR$(34)ok(i)CHR$(34)","CHR$(34)om(i)CHR$(34)","xl(i):NEXT 3370 FOR i=1 TO 16:PRINT#1,d(i,0):NEXT:CLOSE:PRINT c(10):GOSUB 2060:GOTO 3540 3390 ' 3400 ON ERROR GOTO 3500 3410 OPEN"i",1,cm:INPUT#1,f:CLOSE 3414 IF f>5 THEN PRINT c(51):GOSUB 2060:GOTO 3510 3420 IF f<>f(1) THEN f(1)=f:f(5)=1:GOSUB 180 3430 OPEN"i",1,cm 3440 FOR i=1 TO 50:INPUT#1,f(i):NEXT:FOR i=1 TO 30:INPUT#1,oh(i),oj(i),xi(i):NEXT 3441 FOR i=1 TO 10:INPUT#1,xt(i):NEXT:FOR i=1 TO 10:INPUT#1,xd(i):NEXT:FOR i=1 TO 4:INPUT#1,ok(i),om(i),xl(i):NEXT 3450 FOR i=1 TO 16:INPUT#1,d(i,0):NEXT:CLOSE:PRINT c(10):GOSUB 2060:fx=2:GOTO 3540 3490 ' 3500 RESUME 3510 3510 PRINT "File is not found." 3520 CLOSE:GOSUB 3540:f=6:y=2:GOSUB 2110:GOSUB 2060:RETURN 3530 ' 3540 ON ERROR GOTO 3560 3550 OPEN "r",1,commfile,256:FIELD 1,256 AS cx:RETURN 3560 IF ERR<>53 THEN PRINT ERL,ERR:END 3565 RESUME 3570 3570 PRINT c(53):GOSUB 2060:GOTO 3550 3590 'stop & quit 3600 PRINT c(8):GOSUB 2080:IF c="y" OR c="Y" THEN GOSUB 3700:fx=6:RETURN ELSE fx=1:RETURN 3690 'score 3700 IF f(5)=8 THEN RETURN 'last set show score later 3701 fx=1:f(4)=f(4)+1:f=6:y=4:GOSUB 2110:PRINT f(6);:f=6:y=5:GOSUB 2110:PRINT INT(f(39)*f(6)*1.25)/100;c(14):RETURN 3710 'look 3720 fx=2:RETURN 3740 'command 3750 fx=1:f(4)=f(4)+1:f=7:y=1:GOSUB 2100:RETURN 3790 'help 3800 fx=1:f(4)=f(4)+1:f=6:y=6:GOSUB 2100 3805 IF f(3)=43 THEN f=59:y=3:GOSUB 2100:RETURN 3810 IF f(3)<33 AND f(3)>24 THEN f=59:y=3:GOSUB 2100 3815 RETURN 3890 'diagnose 3900 IF f(2)=0 THEN f=7:y=4:GOSUB 2100:RETURN 3910 fx=1:f(4)=f(4)+1:f=77:y=1+f(7):GOSUB 2100:RETURN 3990 'inventory 4000 fx=1:f(4)=f(4)+1:FOR i=1 TO 30:IF xi(i)=0 THEN 4020 4010 NEXT:f=6:y=9:GOSUB 2100:RETURN 4020 PRINT c(15);:FOR i=1 TO 30:IF xi(i)=0 THEN PRINT TAB(15)oh(i);oi(i);oj(i) 4030 NEXT:RETURN 4040 ' 4090 'go & enter 4100 c=MID$(a$(2),1,3):IF c=c(22) OR c=c(23) OR c=MID$(c(24),1,3) THEN GOSUB 9560:GOTO 4100 4105 IF c="" THEN f=16:y=1:GOSUB 2100:RETURN 4110 GOSUB 2400:IF x1=0 THEN 4150 4120 f(4)=f(4)+1:IF gd(x1)>1000 THEN 4200 4121 'pre-condition before go 4122 IF xl(1)=4 AND x1=1 THEN x1=1:GOSUB 2750:f(9)=1:RETURN 4123 IF xi(5)=0 AND f(3)=1 THEN f=8:y=5:GOSUB 2100:RETURN 4125 IF xl(2)=47 AND x1=1 THEN x1=2:GOSUB 2765:RETURN 4126 IF xl(3)=42 AND x1=10 THEN x1=2:GOSUB 2765:RETURN 4130 f(2)=gd(x1):fx=2:RETURN 4140 ' 4150 IF x2>0 THEN f=11:y=2:GOSUB 2100:RETURN 4152 FOR i=1 TO 12:IF c=MID$(v(i),1,3) THEN x1=i:IF x1>6 THEN 3200ELSE 3100 4160 NEXT i:GOSUB 2300:IF x2=0 THEN GOSUB 2200:IF x2=0 THEN GOSUB 2500:IF x2=0 THEN GOSUB 2950:RETURN 4164 IF x1=0 THEN GOSUB 2980:RETURN ELSE PRINT c(11):RETURN 4190 'comment routine when can't go that way 4200 ON gd(x1)-1000 GOTO 4210,4212,4214,4216,4218,4220,4222,4224,4226,4228,4230,4232,4234,4236,4238,4240,4242,4244,4246 4210 f=8:y=5:GOSUB 2100:RETURN 4212 f=8:y=6:GOSUB 2100:RETURN 4214 GOTO 5100 4216 f=77:y=7:GOSUB 2100:RETURN 4218 f=11:y=2:GOSUB 2100:RETURN 4220 f=80:y=3:GOSUB 2100:RETURN 4222 f(5)=5:RETURN 4224 IF xi(10)=0 THEN f(5)=3:RETURN ELSE f=8:y=6:GOSUB 2100:RETURN 4226 f=80:y=2:GOSUB 2100:f=82:i=1:j=3:GOSUB 2130:f(2)=3:fx=2:xi(2)=999:xi(6)=999:xi(7)=999:IF xi(3)=0 THEN xi(3)=999ELSE xi(3)=998 4227 oj(2)="":oj(3)="":oj(6)="":oj(7)="":oj(8)="":f(32)=0:xi(8)=29:GOSUB 2060:RETURN 4228 f=44:y=2:GOSUB 2100:f(9)=4:RETURN 4230 IF f(14)>1 THEN 4234 4232 f=44:y=3:GOSUB 2100:RETURN 4234 PRINT c(9):RETURN 4236 f=62:y=2:GOSUB 2100:RETURN 4238 f=64:y=2:GOSUB 2100:RETURN 4240 f(5)=7:RETURN 4242 IF f(16)=0 THEN IF xi(2)=0 OR xi(2)=72 THEN f(16)=1ELSE 4212 4243 f(2)=7:fx=2:RETURN 4244 f(5)=8:RETURN 4246 f=65:y=2:GOSUB 2100:RETURN 4290 'get 4300 IF c=c(22) OR c=c(23) THEN 4100 4310 IF c<>c(25) THEN 4400 4320 f(4)=f(4)+1:IF f(3)=3 THEN f(2)=4:fx=2:RETURN 4330 IF f(3)=48 THEN f(2)=15:fx=2:RETURN 4340 IF f(3)=64 THEN f(2)=15:fx=2:RETURN 4370 'pre-condition for get out 4380 PRINT c(9):RETURN 4390 'take & get 4400 GOSUB 2300:IF x2=0 THEN 4500 4410 IF x1=0 THEN GOSUB 2980:RETURN 4420 f(4)=f(4)+1:IF x2>0 THEN f=7:y=5:GOSUB 2100:RETURN 4430 'special items condition 4490 f=6:y=7:GOSUB 2100:RETURN 4500 GOSUB 2200:IF x2=0 THEN 4600 4505 IF ABS(x2)=9 THEN f=3:GOSUB 2700 4507 IF f(1)=4 AND x2=2 AND f(3)=xl(2) THEN f=72:y=2:GOSUB 2100:RETURN 4510 IF x1=0 THEN GOSUB 2980:RETURN 4520 IF x2<0 THEN f=7:y=6:GOSUB 2100:RETURN 4530 'pre-condition to take 4531 IF NOT(x1=4 AND f(1)=1) THEN 4540 4533 IF xl(2)>0 THEN x1=2:GOSUB 2765:RETURN 4535 IF f(36)=0 THEN f=20:y=4:GOSUB 2100:f(36)=1 4540 IF f(1)=3 AND x1=2 AND f(18)=0 THEN f(18)=1:d(11,0)=0:IF f(35)=1 THEN f(35)=2:f(6)=f(6)+5 4580 oj(x1)="" 4590 xi(x1)=0:f(4)=f(4)+1:PRINT a$(2);c(18):RETURN 4600 GOSUB 2500:IF x2=0 THEN 4650 4610 IF x1=0 THEN GOSUB 2980:RETURN 4620 f(4)=f(4)+1:IF x2<0 THEN f=8:y=1:GOSUB 2100:RETURN 4621 'take creature alive 4622 IF x1=1 AND f(1)=1 THEN GOSUB 2750:f(9)=1:RETURN 4630 f=8:y=2:GOSUB 2100:RETURN 4640 ' 4650 GOSUB 2400:IF x2=0 THEN GOSUB 2950:RETURN ELSE f=8:y=3:GOSUB 2100:RETURN 4690 'drop & put 4700 x3=x1:GOSUB 2200:IF x2<>0 THEN 4750 4710 GOSUB 2300:IF x2=0 THEN GOSUB 2400:IF x2=0 THEN GOSUB 2500:IF x2=0 THEN GOSUB 2950:RETURN 4720 f=8:y=3:GOSUB 2100:RETURN 4750 IF x2>0 THEN f=10:y=1+INT(RND*2+1):GOSUB 2100:RETURN 4755 ON x3-47 GOTO 4800,4800,2000,7400,7500,7550,2000:STOP 4760 'pre-condition for drop 4800 x3=x1:x4=x2:c=MID$(a$(3),1,3):IF NOT(c=c(21) OR c=c(22)) THEN 4900 4810 c=MID$(a$(4),1,3):IF c="" THEN 4900 4815 GOSUB 2300:IF x2<>0 THEN 4850 4817 GOSUB 2400:IF x2<>0 THEN IF f(1)<>2 THEN f=10:y=5:GOSUB 2100:RETURN ELSE IF x1=0 THEN GOSUB 2990:RETURN ELSE IF x1=1 THEN GOSUB 4990:IF x3=8 THEN xi(8)=f(3):RETURN ELSE xi(x3)=999:RETURN 4820 GOSUB 2200:IF x2=0 THEN GOSUB 2500:IF x2=0 THEN GOSUB 2960:RETURN 4830 IF x1=0 THEN GOSUB 2990:RETURN ELSE PRINT c(11):RETURN 4850 IF x1=0 THEN GOSUB 2990:RETURN 4860 IF gt(x1)>1000 THEN 4950 4870 IF gt(x1)=0 THEN f=10:y=4+INT(RND*3+1):GOSUB 2100:RETURN 4880 'pre-condition to put on 4890 oj(x3)=CHR$(32)+c(22)+c(20)+ot(gt(x1)):PRINT c(10) 4895 IF f(1)=2 AND (x1=1 OR x1=2) THEN GOSUB 4990:xi(x3)=-f(3):RETURN 4900 GOSUB 4990 4910 f(4)=f(4)+1:IF NOT(x3=9 AND f(3)<21) THEN 4920 4912 IF d(f(2),0)=0 THEN d(f(2),0)=4 4914 xi(9)=999:RETURN 4920 IF (f(3)<33 AND f(3)>20) OR f(1)=5 THEN xi(x3)=-f(3):RETURN 4940 xi(x3)=f(3):RETURN 4950 f(4)=f(4)+1:ON gt(x1)-1000 GOTO 4960,4980 4960 IF x3<>9 THEN f=8:y=3:GOSUB 2100:RETURN 4965 IF xl(3)<=0 OR f(41)=0 THEN PRINT c(10):GOTO 4914 4970 f=81:y=1:GOSUB 2100:xt(4)=0:GOSUB 2650:f=81:y=2:GOSUB 2100:f=5:y=1:GOSUB 2150:ok(3)=c:xi(9)=999:xl(3)=-f(3):xl(4)=23:f(11)=4:f(41)=0:IF f(30)=1 THEN f(30)=0:f(6)=f(6)+10:RETURN ELSE f(6)=f(6)+15:RETURN 4980 IF x3<>2 THEN f=8:y=3:GOSUB 2100:RETURN 4982 PRINT c(10):f=23:y=9:GOSUB 2150:oj(2)=c:xi(2)=43:f(18)=0:d(11,0)=6:RETURN 4989 'drop check 4990 PRINT a$(2);c(19):f(4)=f(4)+1:IF x3=1 THEN f(31)=0 4992 IF x3=3 THEN f(32)=0 4994 RETURN 4999 'jump 5000 f(4)=f(4)+1:IF f(3)=44 THEN f(2)=11:fx=2:RETURN 5015 IF NOT(f(3)=42 OR f(3)=43) THEN 5060 5020 IF f(3)<>42 THEN 5040 5025 IF f(19)=0 OR f(19)=1 THEN IF xl(3)=42 THEN x1=2:GOSUB 2765:RETURN ELSE f(2)=11:fx=2:RETURN 5030 f=10:y=5:GOSUB 2100:RETURN 5040 IF f(19)=0 OR f(19)=1 THEN f(2)=10:fx=2:RETURN 5045 IF f(19)=4 THEN f(2)=12:fx=2:RETURN ELSE f=44:y=4:GOSUB 2100:f(9)=3:RETURN 5060 f=11:y=1:GOSUB 2100:RETURN 5070 'suicide 5080 fx=1:f(4)=f(4)+1:f=11:y=6:GOSUB 2100:RETURN 5090 'sail 5100 IF f(3)=3 THEN GOSUB 2800:IF f>0 THEN RETURN ELSE f(5)=2:RETURN 5110 IF f(3)=48 THEN PRINT c(8):GOSUB 2080:IF c="y" OR c="Y" THEN f(5)=4:RETURN ELSE RETURN 5120 IF f(3)=64 THEN f(5)=6:RETURN 5180 f=11:y=2:GOSUB 2100:RETURN 5190 'landing 5200 f(4)=f(4)+1:IF f(3)=3 THEN f(2)=4:fx=2:RETURN 5210 IF f(3)=48 THEN f(2)=15:fx=2:RETURN 5220 IF f(3)=64 THEN f(2)=15:fx=2:RETURN 5280 f=11:y=2:GOSUB 2100:RETURN 5290 'wait 5300 f(4)=f(4)+1 5380 f=11:y=3:GOSUB 2100:RETURN 5390 'f??? 5400 IF c="" THEN 5500 5410 GOSUB 2500:IF x2<=0 AND x1=0 THEN 5500 5420 'selected event only 5490 's??? 5500 f(4)=f(4)+1:f=11:y=3+INT(RND*2+1):GOSUB 2100:RETURN 5590 'spell 5600 f(4)=f(4)+1:FOR i=21 TO 26:IF f(i)>0 THEN 5620ELSE NEXT i 5610 f=11:y=7:GOSUB 2100:RETURN 5620 f=12:y=1:PRINT:GOSUB 2100:FOR i=21 TO 26 5625 IF f(i)=0 THEN 5640 5630 PRINT TAB(3)c(i+10)" ";:IF i=21 AND f(20)=0 THEN PRINT c(30); 5632 IF i=22 AND f(8)=1 THEN f=21:y=2:GOSUB 2110 5635 PRINT 5640 NEXT i:RETURN 5690 'move 5700 IF c="" THEN f=15:y=2:GOSUB 2150:PRINT c(37);f(4);c:fx=1:RETURN 5710 GOSUB 2300:IF x2<>0 THEN 5800 5720 GOSUB 2400:IF x2<>0 THEN PRINT c(11):RETURN 5730 GOSUB 2200:IF x2=0 THEN GOSUB 2500:IF x2=0 THEN GOSUB 2950:RETURN 5740 IF x1=0 THEN GOSUB 2980:RETURN ELSE f=12:y=4:GOSUB 2100:RETURN 5800 IF x1=0 THEN GOSUB 2980:RETURN 5810 f(4)=f(4)+1:IF x2<0 THEN f=12:y=4:GOSUB 2100:RETURN 5820 IF f(1)<>1 THEN 5890 5830 IF NOT(x1=3 OR x1=5) THEN 5860 5840 IF f(11)=1 THEN f(11)=0:xd(3)=0:PRINT c(10):RETURN 5850 f(11)=1:xd(3)=-5:x1=3:GOSUB 2760:RETURN 5860 IF x1<>10 THEN f=12:y=6:GOSUB 2100:RETURN 5870 IF f(12)=1 THEN f(12)=0:xd(5)=0:PRINT c(10):RETURN 5880 f(12)=1:xd(5)=-2:x1=5:GOSUB 2760:RETURN 5890 IF f(3)=45 THEN IF x1=9 THEN IF xi(7)=999 THEN xi(7)=45:f=9:y=4:GOSUB 2100:RETURN ELSE f=13:y=1:GOSUB 2100:RETURN 5898 f=12:y=4:GOSUB 2100:RETURN 5899 'write 5900 f=12:y=3:GOSUB 2100:RETURN 5990 'wake 6000 c=MID$(a$(2),1,3):IF c=v(5) THEN a$(2)=a$(3):GOTO 6000 6010 IF c<>"" THEN 6050 6020 f(4)=f(4)+1:IF f(3)>=48 AND f(3)<=59 THEN f=12:y=6:GOSUB 2100:RETURN 6030 'condition to wake up 6040 f=12:y=5:GOSUB 2100:RETURN 6050 GOSUB 2500:IF x2<>0 THEN 6090 6060 GOSUB 2200:IF x2=0 THEN GOSUB 2300:IF x2=0 THEN GOSUB 2400:IF x2=0 THEN GOSUB 2980:RETURN 6070 PRINT c(11):RETURN 6090 IF x1=0 THEN GOSUB 2980:RETURN 6100 f(4)=f(4)+1:IF x2<0 THEN f=10:y=4+INT(RND*3+1):GOSUB 2100:RETURN 6110 'selected creature and location, example dreamland 6120 IF f(3)>=48 AND f(3)<=59 THEN f=12:y=6:GOSUB 2100:RETURN 6180 f=8:y=2:GOSUB 2100:RETURN 6400 GOSUB 2200:IF x2<>0 THEN 6500 6410 GOSUB 2300:IF x2<>0 THEN 6440 6420 GOSUB 2400:IF x2<>0 THEN PRINT c(5);cm" ?":RETURN 6430 GOSUB 2500:IF x2=0 THEN GOSUB 2950:RETURN ELSE PRINT c(11):RETURN 6440 IF x1=0 THEN GOSUB 2980:RETURN 6450 f(4)=f(4)+1 'check for special readable item 6455 IF f(1)<>3 THEN 6490 6460 IF x1=1 OR x1=8 THEN y=2:f=50:GOSUB 2100:f=61:GOSUB 2100:RETURN 6490 f=13:y=5:GOSUB 2100:RETURN 6500 IF x1=0 THEN GOSUB 2980:RETURN 6510 f(4)=f(4)+1:IF x1=5 THEN 6610 6520 IF x1=6 THEN 6710 6530 IF x1=7 THEN 6760 6540 IF x1=12 THEN 6860 6550 IF NOT(x1=2 OR x1=15 OR x1=8 OR x1=1) THEN PRINT c(5);cm" ?":RETURN 6552 IF x1=1 THEN f=18:y=6:GOSUB 2100:RETURN 6554 IF x1=2 THEN IF f(35)=0 THEN f=19:y=2:GOSUB 2150:PRINT c;cn;:y=3:GOSUB 2100:RETURN ELSE IF f(18)=0 THEN f=10:y=5:GOSUB 2100:RETURN ELSE y=3:f=58:GOSUB 2110:f=19:GOSUB 2100:RETURN 6580 f=13:y=5:GOSUB 2100:RETURN 6590 IF x2>0 THEN xi(x1)=0:PRINT a$(2);c(18):oj(x1)="" 6595 RETURN 6609 'bio 6610 GOSUB 6590:IF f(27)=16 THEN f=21:y=1:GOSUB 2100:RETURN 6612 f(27)=f(27)+1:y=1:ON f(27) GOTO 6620,6622,6624,6626,6628,6630,6632,6634,6636,6638,6640,6642,6644,6646,6648,6650 6620 i=40:j=2:GOSUB 2120:RETURN 6622 i=42:j=3:GOSUB 2120:RETURN 6624 i=45:j=3:GOSUB 2120:RETURN 6626 i=48:j=3:GOSUB 2120:RETURN 6628 i=51:j=3:GOSUB 2120:RETURN 6630 i=54:j=2:GOSUB 2120:RETURN 6632 i=56:j=3:GOSUB 2120:RETURN 6634 i=59:j=3:GOSUB 2120:RETURN 6636 f=62:GOSUB 2100:RETURN 6638 i=63:j=2:GOSUB 2120:RETURN 6640 i=65:j=3:GOSUB 2120:RETURN 6642 i=68:j=2:GOSUB 2120:RETURN 6644 i=70:j=2:GOSUB 2120:RETURN 6646 i=72:j=2:GOSUB 2120:RETURN 6648 f=74:GOSUB 2100:RETURN 6650 i=75:j=2:f(6)=f(6)+5:GOSUB 2120:RETURN 6700 RETURN 6709 'book 6710 GOSUB 6590:IF f(28)=3 THEN f=39:y=1:GOSUB 2100:RETURN 6715 f(28)=f(28)+1:y=1:ON f(28) GOTO 6720,6722,6724 6720 i=34:j=2:GOSUB 2120:RETURN 6722 i=36:j=2:GOSUB 2120:RETURN 6724 f=38:GOSUB 2100:RETURN 6750 RETURN 6759 'scroll 6760 GOSUB 6590:IF f(29)=0 THEN f=33:y=2:GOSUB 2100:IF f(22)=1 THEN RETURN ELSE f(22)=1:y=1:GOSUB 2100:RETURN 6762 IF f(29)=1 THEN f(29)=2:f(24)=1:f(6)=f(6)+5:f=33:y=3:GOSUB 2100:y=1:GOSUB 2100:y=5:GOSUB 2100:RETURN 6764 IF f(29)=2 THEN IF f(1)=3 THEN f=33:y=3:GOSUB 2100:f=5:y=8:GOSUB 2100:RETURN ELSE f=13:y=5:GOSUB 2150:PRINT c(29);c:RETURN 6850 RETURN 6859 'leaflet 6860 GOSUB 6590:f=99:y=2:GOSUB 2100:f=100:y=1:GOSUB 2100:RETURN 7010 'say 7020 f(4)=f(4)+1:IF f(1)=4 AND f(11)=6 THEN IF c=ot(10) THEN f(11)=7:RETURN ELSE IF c=od(10) THEN f(11)=8:RETURN 7030 'selected word 7170 x1=LEN(a$(1))+1:PRINT MID$(cm,x1+1,LEN(cm)-x1)"...":RETURN 7190 'climb 7200 GOSUB 2400:IF x2<>0 THEN 7240 7210 GOSUB 2300:IF x2<>0 THEN 7300 7220 GOSUB 2200:IF x2=0 THEN GOSUB 2500:IF x2=0 THEN GOSUB 2950:RETURN 7230 PRINT c(11):RETURN 7240 IF x1=0 THEN f=11:y=2:GOSUB 2100:RETURN 7250 f(4)=f(4)+1:IF f(1)=1 AND x1=10 THEN f(2)=gd(x1):fx=2:RETURN 7260 'selected climb direction 7290 f=10:y=4+INT(RND*3+1):GOSUB 2100:RETURN 7300 IF x1=0 THEN GOSUB 2980:RETURN 7310 f(4)=f(4)+1 7320 'selected climb item 7380 f=13:y=6:GOSUB 2100:RETURN 7390 'eat 4,9,17,27,20,29,30 7400 f(4)=f(4)+1:IF x1<>4 THEN 7420 7409 'eat item 7410 f(37)=f(37)-1:f=21:y=3:GOSUB 2100:IF f(37)=0 THEN f=21:y=4:GOSUB 2100:xi(4)=999 7415 f(7)=0:f(38)=0:RETURN 7420 IF x1<>9 THEN 7480 7422 IF f(41)=1 THEN f=82:y=7:GOSUB 2100:f=83:y=1:GOSUB 2100:f(9)=2ELSE f=82:y=6:GOSUB 2100 7425 xi(9)=999:RETURN 7480 PRINT c(5);cm;" ?":RETURN 7490 'drink 23,20 7500 f(4)=f(4)+1:IF x1<>23 THEN 7530 7510 'drink blood 7530 PRINT c(5);cm" ?":RETURN 7540 'blow 7550 IF x1<>18 THEN PRINT c(5);cm" ?":RETURN 7560 f(4)=f(4)+1 7570 'special blowing condition 7580 f=13:y=1:GOSUB 2100:RETURN 7999 'thief action 8000 f=74:y=2:GOSUB 2100:GOSUB 2650:f=84:y=1:GOSUB 2100:GOSUB 2650:f=84:y=2:GOSUB 2100:f=83:y=5:GOSUB 2100 8010 f=73:IF xi(1)=0 AND f(31)=1 THEN y=2:GOSUB 2100ELSE xi(1)=999:f(31)=0 8020 IF xi(4)<>999 THEN f(37)=1:IF xi(4)=0 THEN y=3:GOSUB 2100 8030 IF xi(7)=0 THEN y=4:GOSUB 2100 8040 GOSUB 2650:f=85:y=1:GOSUB 2100:GOSUB 2650:f=86:GOSUB 2100:FOR i=1 TO 11:oj(i)="":NEXT:f(35)=3:f(32)=0:xi(2)=999:xi(3)=999:xi(9)=999:xi(10)=999:xi(11)=999:ol(1)=ot(8):xl(1)=xt(8):f(2)=12:GOSUB 2060:RETURN 8049 'set 4 encounter 8060 IF xl(2)<=0 AND f(3)=60 THEN f(9)=4:f=94:IF f(11)>3 THEN y=2:GOSUB 2100:RETURN ELSE y=1:GOSUB 2100:y=2:GOSUB 2100:RETURN 8062 IF (f(3)>=48 AND f(3)<=60) AND xl(3)<=0 THEN IF f(3)=60 THEN f=94:y=3:GOSUB 2100:f(9)=4:RETURN ELSE IF f(13)<>3 THEN GOSUB 8500:f=96:y=3:GOSUB 2100:RETURN 8064 IF xl(2)=f(3) THEN GOSUB 8100ELSE GOSUB 8200 8065 IF xl(1)=f(3) THEN GOSUB 8300ELSE GOSUB 8400 8070 IF d(f(2),0)>9 AND INT(RND*15+1)=9 AND xl(3)>0 THEN f(12)=f(12)+1 8080 IF (f(12)>30 AND f(13)=0) OR (f(12)>20 AND f(13)>0) THEN GOSUB 8500 8090 RETURN 8099 'meet siva 8100 IF f(11)=2 THEN f(11)=3:PRINT:i=88:j=2:y=1:GOSUB 2120:RETURN 8110 IF f(11)=3 THEN f(11)=4:PRINT:f=90:y=1:GOSUB 2100:xl(3)=60:RETURN 8120 IF f(11)=4 THEN f(11)=5:PRINT:f=90:y=2:GOSUB 2100:f=91:y=1:GOSUB 2100:GOSUB 2060:PRINT:i=92:j=2:y=1:GOSUB 2120:f=89:y=2:GOSUB 2100:RETURN 8130 IF f(11)=5 THEN f(11)=6:PRINT:f=73:y=5:GOSUB 2100:RETURN 8135 IF f(11)=6 AND INT(RND*2+1)=1 THEN PRINT:f=93:y=2:GOSUB 2100:RETURN 8140 IF f(11)=7 THEN f(11)=11:PRINT:f(6)=f(6)+5:f=75:y=2:GOSUB 2100:f=11:y=3:GOSUB 2100:GOSUB 2060:i=86:j=2:y=2:GOSUB 2120:f(2)=6:xl(3)=55:GOSUB 2060:CLS:f=94:y=4:GOSUB 2100:PRINT:RETURN 8150 IF f(11)=8 THEN f(11)=9:PRINT:f=71:y=3:GOSUB 2100:RETURN 8155 IF f(11)=9 AND INT(RND*3+1)=1 THEN PRINT:f=71:y=3:GOSUB 2100:RETURN 8160 IF f(11)=10 THEN f(11)=6:PRINT:f=74:y=3:GOSUB 2100 8170 RETURN 8200 IF f(11)=0 THEN f(11)=1:RETURN 8210 IF f(11)=1 THEN f(11)=2:xl(2)=60:PRINT:f=87:y=1:GOSUB 2100:RETURN 8220 IF f(11)=9 THEN f(11)=10:RETURN ELSE RETURN 8290 'meet xorr 8300 IF f(13)=0 THEN f(13)=1:f=95:y=1:GOSUB 2100:f=96:GOSUB 2100:f(12)=0:xi(2)=55:xl(1)=49:xl(3)=49:xl(4)=55:fx=9:FOR i=2 TO 5:d(i,0)=d(i+6,0):d(i+6,0)=9:NEXT:GOSUB 2060:RETURN 8310 IF f(13)=1 THEN f(13)=2:f=96:y=2:GOSUB 2100:RETURN 8320 IF f(13)=2 THEN f=97:y=1:GOSUB 2100:GOSUB 8500:RETURN 8330 IF f(13)=4 THEN f(13)=5:f=97:y=2:GOSUB 2100:RETURN 8340 IF f(13)=5 THEN f=97:y=3:GOSUB 2100:f(9)=4:GOSUB 8500 8350 RETURN 8400 IF f(13)=2 OR f(13)=4 OR f(13)=5 THEN f=96:y=3:GOSUB 2100:GOSUB 8500 8410 RETURN 8490 'liv dead 8500 f(12)=0:f(13)=3:xl(1)=0:xl(3)=0:f=90:y=3:GOSUB 2100:RETURN 8690 'wear 8700 GOSUB 2200:IF x2<>0 THEN 8730 8710 GOSUB 2300:IF x2=0 THEN GOSUB 2400:IF x2=0 THEN GOSUB 2500:IF x2=0 THEN GOSUB 2950:RETURN 8720 PRINT c(11):RETURN 8730 IF x1=0 THEN GOSUB 2980:RETURN 8740 f(4)=f(4)+1:IF NOT(x1=1 OR x1=3) THEN PRINT c(11):RETURN 8800 IF x2>0 THEN xi(x1)=0:oj(x1)="":PRINT a$(2);c(18) 8810 IF x1<>3 THEN 8850 8820 IF f(32)=1 THEN f=15:y=3:GOSUB 2100:RETURN 8830 f(32)=1:PRINT c(10):RETURN 8850 IF f(31)=1 THEN f=15:y=3:GOSUB 2100:RETURN 8860 f(31)=1:PRINT c(10):RETURN 8890 'check attacking with what 8900 x3=x1:x4=x2:x2=0:c=MID$(a$(3),1,3):IF c=MID$(c(26),1,3) THEN 8910 8905 IF xi(2)=0 THEN x2=999:RETURN ELSE f=8:y=6:GOSUB 2100:RETURN 8910 c=MID$(a$(4),1,3):IF c="" THEN PRINT c(26);:GOSUB 2600:GOTO 8910 8911 FOR i=0 TO 5:IF c=MID$(c(40+i),1,3) THEN x1=i:x2=1000:RETURN 8912 NEXT i:GOSUB 2200:IF x2<>0 THEN 8930ELSE GOSUB 2300:IF x2=0 THEN GOSUB 2400:IF x2=0 THEN GOSUB 2500:IF x2=0 THEN GOSUB 2960:RETURN 8915 PRINT c(11):RETURN 8929 ' 8930 IF x1=0 THEN GOSUB 2990:RETURN 8940 IF x2>0 THEN f=10:y=1+INT(RND*2+1):GOSUB 2100:RETURN 8950 IF x1=2 THEN x2=999:RETURN 8960 IF x1=16 OR x1=28 THEN f=15:y=4:GOSUB 2100:RETURN 8970 IF x1=15 OR x1=18 OR x1=25 OR x1=26 THEN f=15:y=5:GOSUB 2100:RETURN ELSE PRINT c(11):RETURN 8990 'stab 9000 IF c<>MID$(c(39),1,3) THEN 9100 9010 GOSUB 8900:IF x2=1000 THEN PRINT c(11):RETURN 9020 IF x2<>999 THEN RETURN 9030 f(4)=f(4)+1:IF f(1)<20 THEN f=11:y=2:GOSUB 2100:RETURN 9040 'stab footprint 9080 RETURN 9090 'kill attack stab creature 9100 GOSUB 2500:IF x2<>0 THEN 9200 9102 GOSUB 2400:IF x2<>0 THEN PRINT c(11):RETURN 9105 GOSUB 2300:IF x2=0 THEN GOSUB 2200:IF x2=0 THEN GOSUB 2950:RETURN 9110 IF x1=0 THEN GOSUB 2980:RETURN ELSE f=15:y=5+INT(RND*2+1):GOSUB 2100:RETURN 9200 IF x1=0 THEN GOSUB 2980:RETURN 9210 GOSUB 8900:IF x2<999 THEN RETURN 9220 IF x2<>1000 THEN 9250 9230 IF x1=0 THEN f=16:y=1:GOSUB 2100:RETURN 9240 ON x1 GOTO 10000,10400,10800,11200,11600 9250 IF x4<0 THEN f=16:y=2:GOSUB 2100:RETURN 9260 x1=x3:f(4)=f(4)+1:ON ks(x1) GOTO 9272,9274,9276,9280,9282,9290,9300,9310,9320 9270 'attack with sword 9272 GOSUB 9481:RETURN 9274 f=22:y=8:GOSUB 2100:f(6)=f(6)+5:GOTO 9272 9276 f(18)=f(18)+1:IF f(18)=1 THEN GOSUB 9470:f(19)=6:RETURN 9278 IF f(18)=5 THEN f=22:y=10:GOSUB 2100:GOSUB 9481:f(6)=f(6)+10:f=22:y=4:GOSUB 2100:f(7)=4:RETURN ELSE f=22:y=9:GOSUB 2100:RETURN 9280 PRINT ol(x1);c(17):RETURN 9282 f=77:y=8:GOSUB 2100:RETURN 9290 GOSUB 9280:f=47:y=2:GOSUB 2100:f(9)=3:RETURN 9300 GOSUB 9470:f=53:y=2:GOSUB 2100:xd(1)=0:xl(2)=0:RETURN 9310 IF f(13)=2 THEN f(13)=4:f=97:y=4:GOSUB 2100:RETURN ELSE f=98:y=1:GOSUB 2100:RETURN 9320 f=98:y=4:GOSUB 2100:RETURN 9469 'creature wounded 9470 f=22:y=8:GOSUB 2100:f=22:y=6:GOSUB 2150:PRINT c(59);ol(x1);c:ok(x1)=c(58):RETURN 9480 'creature dead routine 9481 f=5:y=1:GOSUB 2150:ok(x1)=c:GOTO 9490 9482 f=5:y=2:GOSUB 2150:ok(x1)=c+c(20):GOTO 9490 9483 f=5:y=2:GOSUB 2150:ok(x1)=c:GOTO 9490 9484 'etc 9490 xl(x1)=-f(3):PRINT ol(x1);c(17):RETURN 9499 'eliminate unnecesary word for spell 9500 c=MID$(a$(2),1,3):IF c=MID$(c(24),1,3) THEN GOSUB 9560:GOTO 9500 9510 IF c=MID$(c(46),1,3) OR c=MID$(c(47),1,3) THEN GOSUB 9560:GOTO 9500 9520 IF c="" THEN PRINT cm" "c(24):RETURN ELSE x1=999:RETURN 9550 'shift words 9560 FOR i=2 TO x:a$(i)=a$(i+1):NEXT i:RETURN 9590 'check target 9600 x3=800:c=MID$(a$(2),1,3):GOSUB 2500:IF x2<>0 THEN 9630 9610 GOSUB 2400:IF x2<>0 THEN IF x1=0 THEN f=11:y=2:GOSUB 2100ELSE f=16:y=4:GOSUB 2100:RETURN 9615 GOSUB 2200:IF x2=0 THEN GOSUB 2300:IF x2=0 THEN GOSUB 2950:RETURN 9620 IF x1=0 THEN GOSUB 2980:RETURN ELSE f=16:y=4:GOSUB 2100:RETURN 9630 IF x1=0 THEN GOSUB 2980:RETURN 9640 IF x2<0 THEN f=16:y=2:GOSUB 2100:RETURN ELSE x3=900:RETURN 9649 'select spell flag 9650 IF f(f)=0 THEN f=16:y=4+INT(RND*2+1):GOSUB 2100:RETURN 9660 IF f(f)=1 THEN f=0:RETURN ELSE f=17:y=2:GOSUB 2100:RETURN 9690 'travel spell 9700 PRINT c(36):f=26:GOSUB 9650:IF f<>0 THEN RETURN 9710 PRINT c(8):GOSUB 2080:IF NOT(c="y" OR c="Y") THEN RETURN 9720 f(4)=f(4)+1 9730 'travel spell check flag 33 9780 RETURN 9890 'light 9900 IF MID$(a$(2),1,3)<>"" THEN 10000 9910 PRINT c(32):f=22:GOSUB 9650:IF f<>0 THEN RETURN 9930 f(4)=f(4)+1:IF f(8)=0 THEN f(8)=1ELSE f(8)=0 9940 f=17:y=1:GOSUB 2100:RETURN 9990 'lightning bolt 10000 PRINT c(35):f=25:GOSUB 9650:IF f<>0 THEN RETURN 10010 GOSUB 9500:IF x1<>999 THEN RETURN 10020 GOSUB 9600:IF x3=800 THEN RETURN 10040 PRINT c(8):GOSUB 2080:IF NOT(c="y" OR c="Y") THEN RETURN 10050 f(4)=f(4)+1:f=17:y=1:GOSUB 2100 10300 RETURN 10390 'disintegrate 10400 PRINT c(31):f=21:GOSUB 9650:IF f<>0 THEN RETURN 10410 GOSUB 9500:IF x1<>999 THEN RETURN 10420 GOSUB 9600:IF x3=800 THEN RETURN 10430 IF f(20)=0 THEN f=17:y=6:GOSUB 2100 10440 PRINT c(8):GOSUB 2080:IF NOT(c="y" OR c="Y") THEN RETURN 10450 f(4)=f(4)+1:f=17:y=1:GOSUB 2100 10460 ON kd(x1) GOTO 10520,10500,10510,10530,10490,10550,10600 10480 IF f(20)<5 THEN f(7)=f(7)+4:f=77:y=4:GOSUB 2100 10481 RETURN 10490 xl(x1)=0:PRINT ol(x1);c(17):GOSUB 10480:RETURN 10500 f=12:y=2:GOSUB 2150:PRINT c(28);c:RETURN 10510 f(6)=f(6)+10:GOTO 10490 10520 f(6)=f(6)+5:GOTO 10490 10530 f(11)=3:f(30)=1:f(6)=f(6)+5:GOSUB 10490:RETURN 10550 f=98:y=2:GOSUB 2100:GOSUB 10490:IF f(13)=2 THEN f=98:y=3:GOSUB 2100:GOSUB 8500 10560 f(12)=0:f(6)=f(6)+15:f(13)=6:f=82:y=3:GOSUB 2100:GOSUB 2060:PRINT:RETURN 10600 GOSUB 10520:f=82:y=3:GOSUB 2100:GOSUB 2060:f=78:y=1:GOSUB 2100:PRINT:RETURN 10790 'fireball 10800 PRINT c(33):f=23:GOSUB 9650:IF f<>0 THEN RETURN 10810 GOSUB 9500:IF x1<>999 THEN RETURN 10820 GOSUB 9600:IF x3=800 THEN RETURN 10830 PRINT c(8):GOSUB 2080:IF NOT(c="y" OR c="Y") THEN RETURN 10840 f(4)=f(4)+1:f=17:y=1:GOSUB 2100 11100 RETURN 11190 'wind blast 11200 PRINT c(34):f=24:GOSUB 9650:IF f<>0 THEN RETURN 11210 GOSUB 9500:IF x1<>999 THEN RETURN 11220 GOSUB 9600:IF x3=800 THEN RETURN 11230 PRINT c(8):GOSUB 2080:IF NOT(c="y" OR c="Y") THEN RETURN 11240 f(4)=f(4)+1:f=17:y=1:GOSUB 2100 11250 ON kw(x1) GOTO 11300,11260,11310,11320,11330 11255 'blown away 11260 f=53:y=3:GOSUB 2110:f=54:y=2:GOSUB 2150:PRINT ol(x1);c:xl(x1)=0:RETURN 11300 f(6)=f(6)+5:f=83:y=2:GOSUB 2100:y=3:GOSUB 2100:xl(x1)=0:RETURN 11310 f(6)=f(6)+5:GOSUB 11260:f=47:y=3:GOSUB 2100:xd(1)=0:RETURN 11320 IF f(13)=2 THEN f=98:y=2:GOSUB 2100:y=3:GOSUB 2100:GOSUB 8500:RETURN ELSE f=98:y=1:GOSUB 2100:RETURN 11330 f(6)=f(6)+5:GOSUB 11260:RETURN 11590 'cold blast 11600 PRINT c(34):f=24:GOSUB 9650:IF f<>0 THEN RETURN 11610 GOSUB 9500:IF x1<>999 THEN RETURN 11620 GOSUB 9600:IF x3=800 THEN RETURN 11630 PRINT c(8):GOSUB 2080:IF NOT(c="y" OR c="Y") THEN RETURN 11640 f(4)=f(4)+1:f=17:y=1:GOSUB 2100 11650 ON kc(x1) GOTO 11700,11710,11720,11730,11740,11670 11660 'frozen dead 11670 f=5:y=4:GOSUB 2150:ok(x1)=c:xl(x1)=-f(3):PRINT ol(x1);c(17):RETURN 11700 f=83:y=4:GOSUB 2100:RETURN 11710 f=47:y=2:GOSUB 2100:f(9)=3:RETURN 11720 f(6)=f(6)+5:GOSUB 11670:RETURN 11730 IF f(13)=5 THEN f=98:y=1:GOSUB 2100:RETURN 11740 f=22:y=11:GOSUB 2100:RETURN 11990 'examine 12000 GOSUB 2300:IF x2=0 THEN 12400 12010 IF x1=0 THEN GOSUB 2980:RETURN 12030 f(4)=f(4)+1:ON et(x1) GOTO 12100,12110,12120,12130,12140,12148,12160,12170,12200,12210,12220,12230,12240,12250 12100 PRINT c(47+INT(RND*3+1));a$(2);c(16):RETURN 12110 f=9:y=1:GOSUB 2100:RETURN 12120 f=17:y=5:GOSUB 2150:PRINT c(29);c:RETURN 12130 IF f(13)=1 THEN f=17:y=7:GOSUB 2100:RETURN ELSE f(13)=1:f=9:y=4:GOSUB 2100:xi(5)=1:RETURN 12140 IF f(14)=2 THEN f=18:y=1:GOSUB 2100:RETURN 12145 IF f(14)=1 THEN f(14)=2:f=9:y=4:GOSUB 2100:xi(3)=9:f(6)=f(6)+5:RETURN ELSE f(14)=1:f=9:y=4:GOSUB 2100:xl(3)=9:RETURN 12148 IF f(15)=1 THEN f(15)=f(15)+1:f=9:y=4:GOSUB 2100:xl(4)=2:RETURN 12150 IF f(15)<>2 THEN f(15)=f(15)+1:f=17:y=5:GOSUB 2150:PRINT c(29);c:RETURN ELSE f(15)=f(15)+1:f=9:y=4:GOSUB 2150:PRINT c(28);c:xi(7)=2:RETURN 12160 IF xl(3)>0 THEN f=82:y=4:GOSUB 2100:RETURN ELSE 12100 12170 IF f(14)=0 THEN f(14)=1:f=9:y=4:GOSUB 2100:xi(10)=f(3):RETURN 12180 IF f(14)=1 THEN f(14)=2:IF xi(3)=999 THEN f=9:y=4:GOSUB 2100:xi(3)=f(3):RETURN 12190 f=18:y=1:GOSUB 2100:RETURN 12200 IF f(14)=2 THEN f=9:y=3:GOSUB 2100:RETURN ELSE f=8:y=4:GOSUB 2100:RETURN 12210 f=54:y=3:GOSUB 2100:RETURN 12220 IF xl(3)>0 THEN f=61:y=4:GOSUB 2100:RETURN ELSE f=65:y=3:GOSUB 2100:RETURN 12230 IF f(3)=66 THEN IF f(18)=0 OR f(18)=2 THEN xd(1)=-66:f=59:y=4:GOSUB 2100:IF f(18)=0 THEN f(18)=1:gd(1)=1019:f(17)=2:RETURN ELSE f(18)=3:gd(1)=9:gd(3)=2:f(6)=f(6)+5:RETURN 12233 IF f(3)=68 THEN IF f(17)=0 OR f(17)=2 THEN xd(2)=-68:f=59:y=4:GOSUB 2100:IF f(17)=0 THEN f(17)=1:gd(2)=1019:f(18)=2:RETURN ELSE f(17)=3:gd(2)=9:gd(3)=5:f(6)=f(6)+5:RETURN 12235 GOTO 12100 12240 f=61:y=3:GOSUB 2100:RETURN 12250 f=62:y=3:GOSUB 2100:RETURN 12390 ' 12400 GOSUB 2400:IF x2=0 THEN 12800 12410 IF x1=0 THEN f=11:y=2:GOSUB 2100:RETURN 12430 f(4)=f(4)+1:ON ed(x1) GOTO 12450,12460,12470,12455,12480,12490 12450 PRINT c(47+INT(RND*3+1));a$(2);c(16):RETURN 12455 f=21:y=7:GOSUB 2100:RETURN 12460 IF f(16)=1 THEN 12455ELSE f(16)=1:f=9:y=5:GOSUB 2100:f(17)=1:xl(1)=4:RETURN 12470 f=10:y=1:GOSUB 2100:GOSUB 12455:RETURN 12480 IF f(19)>1 THEN f=31:y=2:GOSUB 2100:RETURN 12490 f=58:y=2:GOSUB 2100:RETURN 12790 ' 12800 GOSUB 2200:IF x2=0 THEN 13200 12805 IF d(f(2),0)=3 OR d(f(2),0)=4 THEN IF ABS(x2)=9 THEN x1=ABS(x2) 12807 IF f(1)=4 AND x2=2 AND f(3)=xl(2) THEN f=72:y=2:GOSUB 2100:RETURN 12810 IF x1=0 THEN GOSUB 2980:RETURN 12820 f(4)=f(4)+1:ON INT((ei(x1)-1)/15)+1 GOTO 12830 12830 ON ei(x1) GOTO 12850,12860,12870,12910,12920,12960,13010,13060,13130 12840 ' 12850 PRINT c(47+INT(RND*3+1));a$(2);c(16):RETURN 12860 IF f(31)=1 THEN f=15:y=3:GOSUB 2100 12865 IF f(34)=0 THEN f=18:y=6:GOSUB 2100:RETURN ELSE f=19:y=1:GOSUB 2100:RETURN 12870 IF f(35)=0 THEN f=19:y=2:GOSUB 2110:f=19:y=3:GOSUB 2150:PRINT cn;c:RETURN 12880 IF f(35)=1 OR f(35)=2 THEN IF f(18)=0 THEN f=59:y=2:GOSUB 2100:RETURN ELSE f=58:y=3:GOSUB 2110:f=19:GOSUB 2100:RETURN 12890 IF f(35)=3 THEN f=98:y=5:GOSUB 2150:PRINT c;:y=6:GOSUB 2100:RETURN 12900 IF f(35)=4 THEN f=98:y=5:GOSUB 2150:PRINT c;:f=99:y=1:GOSUB 2100:RETURN 12910 IF f(32)=1 THEN f=15:y=3:GOSUB 2100 12912 IF f(1)=1 THEN f=19:y=4:GOSUB 2100:RETURN 12913 IF f(1)=3 THEN f=19:y=5:GOSUB 2100:RETURN ELSE f=20:y=1:GOSUB 2100:RETURN 12920 IF xl(2)>0 AND f(3)=13 THEN x1=2:GOSUB 2765:RETURN 12930 IF f(36)=0 THEN f=20:y=3:GOSUB 2100:f=20:y=4:GOSUB 2100:f(36)=1:RETURN 12940 IF x2>0 THEN f=20:y=3:GOSUB 2100:RETURN ELSE f=20:IF f(37)<2 THEN y=5ELSE y=6 12950 GOSUB 2150:PRINT f(37);c:RETURN 12960 IF f(27)=0 THEN f=8:y=4:GOSUB 2150:PRINT c(29);c:RETURN 12970 IF f(27)=16 THEN f=21:y=1:GOSUB 2100:RETURN 12980 ' 13000 f=20:y=7:GOSUB 2100:RETURN 13010 IF f(28)=0 THEN f=8:y=4:GOSUB 2150:PRINT c(29);c:RETURN 13020 IF f(28)=3 THEN f=39:y=1:GOSUB 2100:RETURN 13030 ' 13050 f=20:y=7:GOSUB 2100:RETURN 13060 IF f(29)=0 THEN IF f(22)=0 THEN f=8:y=4:GOSUB 2100:RETURN ELSE f=21:y=1:GOSUB 2100:RETURN 13070 IF f(29)=1 THEN f=8:y=4:GOSUB 2100:RETURN 13075 IF f(29)=2 THEN IF f(1)=3 THEN f=21:y=1:GOSUB 2100:RETURN ELSE f=13:y=5:GOSUB 2150:PRINT c(29);c:RETURN 13080 ' 13100 f=20:y=7:GOSUB 2100:RETURN 13120 ' 13130 f(15)=f(15)+1:IF f(15)=2 THEN f=82:y=5:GOSUB 2150:PRINT c(28);c:f(41)=1:RETURN ELSE 12850 13140 ' 13200 GOSUB 2500:IF x2=0 THEN GOSUB 2950:RETURN 13210 IF x1=0 THEN GOSUB 2980:RETURN 13220 f(4)=f(4)+1:IF xl(x1)<0 THEN f=18:y=2:GOSUB 2100:RETURN 13240 ON el(x1) GOTO 13300,13310,13320,13330,13340,13350 13300 PRINT c(47+INT(RND*3+1));a$(2);c(16):RETURN 13310 f=18:y=3:GOSUB 2100:RETURN 13320 f=18:y=4:GOSUB 2150:PRINT c;a$(2);c(16):RETURN 13330 f=67:y=3:GOSUB 2100:RETURN 13340 f=68:y=2:GOSUB 2100:RETURN 13350 y=2:IF f(3)>=48 AND f(3)<=59 THEN f=69:GOSUB 2100:RETURN ELSE f=71:GOSUB 2100:RETURN 15990 'next set 16000 f(8)=0:GOSUB 3700:ON f(5) GOTO 16010,16020,16030,16040,16050,16060,16070,16080 16010 f(5)=0:RETURN 16020 f(5)=0:GOSUB 16400:f(2)=16:f(1)=2:oj(5)="":f=3:y=-32:GOSUB 16300:fx=5:RETURN 16030 f(5)=0:f=23:y=9:GOSUB 2150:oj(2)=c:xi(2)=43:f(35)=1:f(1)=3:f(2)=1:f(14)=0:xi(10)=33:xi(7)=999:oj(7)="":f(29)=1:fx=5:RETURN 16040 f(5)=0:f(1)=2:f(2)=7:f(11)=5:f(30)=0:f=48:y=-23:GOSUB 16300:fx=5:RETURN 16050 f(5)=0:f(1)=4:f(2)=15:GOSUB 16400:f=24:y=64:GOSUB 16300:fx=5:RETURN 16060 f(5)=0:f(1)=5:f(2)=13:f=64:y=-77:GOSUB 16300:fx=5:RETURN 16070 f(5)=0:f(1)=4:f(2)=15:f=77:y=64:GOSUB 16300:fx=5:RETURN 16080 f(5)=0:f=4:y=1:GOSUB 2100:f=100:y=2:GOSUB 2100:PRINT:GOSUB 3700:PRINT:fx=6:RETURN 16290 'move item next set 16300 FOR i=1 TO 12:IF ABS(xi(i))=f THEN xi(i)=y 16310 NEXT:RETURN 16390 'reset flag 16400 FOR i=11 TO 19:f(i)=0:NEXT:RETURN 16450 FOR i=21 TO 26:f(i)=0:NEXT:FOR i=1 TO 30:xi(i)=999:NEXT:RETURN 16490 'death 16500 f(7)=0:f(38)=0:f(10)=f(10)+1:f(6)=f(6)-f(1):f=7:y=4:GOSUB 2100:IF f(10)>7 THEN 16590 16510 ON f(9) GOTO 16520,16530,16540,16590,16590,16600 16520 f(9)=0:f(2)=11:GOTO 16700 16530 f(9)=0:f(2)=16:xl(3)=19:xl(4)=17:GOSUB 16400:GOTO 16700 16540 f(9)=0:f(17)=0:f(19)=0:xd(8)=0:f(2)=1:GOTO 16700 16590 f(9)=0:GOSUB 16450:f(2)=0:fx=2:GOSUB 2060:RETURN 16600 f(9)=0:f(2)=7:f(11)=5:IF xl(4)>0 THEN xl(4)=23 16700 f=39:y=2:GOSUB 2100:fx=2:GOSUB 2060:RETURN